package equipos.fcf.cat;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.sql.SQLException;

import com.opencsv.CSVWriter;

import fcf.cat.Config;
import fcf.cat.DBase;
import fcf.cat.Exportar;
import fcf.cat.Importar;
import fcf.cat.Querys;
import fcf.cat.Utils;

public class Equipos {
	
	public static String newLine = "\n";
	public static String splitBy = ";";

	public static void init() throws SQLException, IOException{
		checkVista(); //comprobamos si existe la vista.
		Exportar.MysqlToCsv(Config.BD_FFCATALUNYA+"."+Config.VISTA_EQUIPOS,Config.EQUIPOS_CSV,splitBy,newLine); //Exportamos datos de la vista a csv
		tratarCSV(); // Modificamos el csv 
		Importar.CsvToMysql(Config.BD_RELACIONES,Config.TABLA_EQUIPOS,"rel_equipos.csv",splitBy,newLine); //importamos el csv a la tabla relaciones.equipos
	}
	
	/**
	* 
	* @throws SQLException
	*/
	public static void checkVista() throws SQLException {
		System.out.println("***** INICIANDO COMPROBACION VISTA EQUIPOS *****");
		if(!DBase.existeTabla(Config.BD_FFCATALUNYA,Config.VISTA_EQUIPOS)){ //comprueba que la vista de equipos_url exista.Si no la creamos
			Boolean res = DBase.query(Config.BD_FFCATALUNYA,Querys.vistaEquipos()); //ejecutamos query de la vista
			if(res == true){
				Utils.linea("VISTA ->"+Config.BD_FFCATALUNYA+"."+Config.VISTA_EQUIPOS+" CREADA CORRECTAMENTE");
			}else{
				Utils.linea("NO SE HA PODIDO CREAR LA VISTA"+Config.VISTA_EQUIPOS);
			}
		}
	}

	/**
	* Modifica el csv con los datos de cada registro que ira a relaciones.equipos
	*/
	public static void tratarCSV() {
		 
		String csvFile = Config.CSV_FOLDER+Config.EQUIPOS_CSV;

		BufferedReader br = null;
		String line = newLine;
		String cvsSplitBy = splitBy;
		 
		try {
		 
			br = new BufferedReader(new FileReader(csvFile));
			
			String data = "";
			
			int i = 1;
			
			Utils.linea("Modificando CSV equipos....");

			while ((line = br.readLine()) != null) {
			 
				String[] aux = line.split(cvsSplitBy);

				String cod_club = aux[0];
				String cod_equipo = aux[1];
				String cod_categoria = aux[2];
				String categoria_equipo_url = Utils.validarString(aux[5]);
				String nombre_club = aux[3];
				nombre_club = nombre_club.replace("\"","");
				String nombre_club_url = Utils.validarString(aux[3]);
				nombre_club_url = Utils.eliminarUltimoCaracter(nombre_club_url);
				String nombre_equipo = aux[4];
				nombre_equipo = nombre_equipo.replace("\"","");
				String nombre_equipo_url = Utils.validarString(aux[4])+"-"+categoria_equipo_url;
				String categoria_equipo = aux[5];
				categoria_equipo = categoria_equipo.replace("\"","");
				String fecha_actualizacion = aux[6];
				fecha_actualizacion = fecha_actualizacion.replace("\"","");
				data+=cod_club+splitBy+cod_equipo+splitBy+cod_categoria+splitBy+nombre_club+splitBy+nombre_club_url+splitBy+nombre_equipo+splitBy+nombre_equipo_url+splitBy+categoria_equipo+splitBy+categoria_equipo_url+splitBy+fecha_actualizacion+newLine;
				
				//System.out.println(data);
				i++;
			 }

			crearCSV(data); //creamos csv equipos que importaremos a la base de datos
			Utils.linea("Relaciones.equipos: "+i+" de registros creados "+Config.CSV_FOLDER+Config.EQUIPOS_CSV);
					 
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (br != null) {
				try {
					br.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}
	
	
	/**
	* 
	* @param data
	*/
	public static void crearCSV(String data){
			 
		CSVWriter writer = null;
				
	    try {
			writer = new CSVWriter(new FileWriter(Config.CSV_FOLDER+Config.EQUIPOS_REL_CSV), '\n', CSVWriter.NO_QUOTE_CHARACTER);
		} catch (IOException e1) {
			e1.printStackTrace();
		}

		String[] entries = data.split("\n");
		writer.writeNext(entries);
		
		try {
			writer.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	

}
 
/**

SELECT t1.CODCLUB,t1.CODEQUIPO,t1.CODCATEGORIA,t2.NOMBRE_CLUB,t1.NOMBRE_EQUIPO,t1.NOMBRE_CORTO_EQUIPO,
       t1.CATEGORIA_CLUB,t2.DOMICILIO,t2.LOCALIDAD,t1.CODIGO_POSTAL,t2.CODIGO_PROVINCIA,
       t2.TELEFONO,t2.FAX,t2.CONTACTO,t1.CODIGO_CAMPO
	FROM nfg_cmp_equipos t1
	LEFT JOIN nfg_cmp_clubes t2
	ON t1.CODCLUB=t2.CODCLUB
	
	
	
	
	
	
CREATE
    VIEW `relaciones`.`equipos_url` 
    AS
(SELECT t1.CODCLUB,t1.CODEQUIPO,t1.CODCATEGORIA,t2.NOMBRE_CLUB,t1.NOMBRE_EQUIPO,t1.NOMBRE_CORTO_EQUIPO,
       t1.CATEGORIA_CLUB,t2.DOMICILIO,t2.LOCALIDAD,t1.CODIGO_POSTAL,t2.CODIGO_PROVINCIA,
       t2.TELEFONO,t2.FAX,t2.CONTACTO,t1.CODIGO_CAMPO
FROM portal_ffcatalunya.nfg_cmp_equipos t1
LEFT JOIN portal_ffcatalunya.nfg_cmp_clubes t2
ON t1.CODCLUB=t2.CODCLUB);

**/

